package com.cyh.service;

import com.cyh.dao.UserMapper;
import com.cyh.domain.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class ServiceDemo {

    /*mybats代理的方式实现dao层，只需要编写mapper接口
    Mapper接口开发规范：
    1， Mapper.xml文件中的namespace与mapper接口的全限定名相同
    2，Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
    3，Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同
    4，Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同*/

    public static void main(String[] args) throws IOException {
        //获得核心配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
        //获得session工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //获得session回话对象
        SqlSession sqlSession = sqlSessionFactory.openSession(); //也可以传一个参数，是否自动提交事务，默认要手动提交更新事务的。

        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        List<User> all = userMapper.findAll();
        System.out.println(all);

        User userbyid = userMapper.findById(1);
        System.out.println(userbyid);
    }




}
